home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mh / mh-6.8 / zotnet / mf / umsift.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-14  |  1.1 KB  |  80 lines

  1. /* umsift.c - test out uumm */
  2.  
  3. #include "mf.h"
  4. #include <stdio.h>
  5.  
  6. /*   */
  7.  
  8. /* ARGSUSED */
  9.  
  10. main (argc, argv)
  11. int     argc;
  12. char  **argv;
  13. {
  14.     int     oops = 0;
  15.     char    sobuf[BUFSIZ];
  16.     FILE * fp;
  17.  
  18.     mts_init (*argv);
  19.     setbuf (stdout, sobuf);
  20.     if (argc < 2)
  21.     sift (stdin);
  22.     else
  23.     while (--argc) {
  24.         if ((fp = fopen (*++argv)) == NULL) {
  25.         perror (*argv);
  26.         oops++;
  27.         continue;
  28.         }
  29.         sift (fp);
  30.         fclose (fp);
  31.     }
  32.  
  33.     exit (oops);
  34. }
  35.  
  36. /*   */
  37.  
  38. static  sift (f)
  39.         FILE * f;
  40. {
  41.     switch (uucp2mmdf (fileno (f), fileno (stdout), FALSE)) {
  42.     case MFOK: 
  43.         break;
  44.  
  45.     case MFPRM: 
  46.         die ("internal error while filtering UUCP mail");
  47.  
  48.     case MFSIO: 
  49.         die ("no free file pointers -- you lose");
  50.  
  51.     case MFERR: 
  52.         die ("i/o error while filtering UUCP mail");
  53.  
  54.     case MFROM: 
  55.     case MFHDR: 
  56.     case MFTXT: 
  57.         fprintf (stderr, "UUCP mail was in bad format, patched...\n");
  58.         break;
  59.     }
  60. }
  61.  
  62. /*   */
  63.  
  64. /* VARARGS */
  65.  
  66. die (fmt, a, b, c, d)
  67. char   *fmt,
  68.        *a,
  69.        *b,
  70.        *c,
  71.        *d;
  72. {
  73.     fflush (stdout);
  74.  
  75.     fprintf (stderr, fmt, a, b, c, d);
  76.     putc ('\n', stderr);
  77.  
  78.     exit (-1);
  79. }
  80.